package com.dimension.service;

import com.dimension.vo.ImageTag;
import com.dimension.vo.ImageTagCategory;

import java.util.List;

public interface ImageService {
    List<ImageTag> getImageTagList(Integer pageNum, Integer pageSize);

    long getTotalWithNoCondition();

    void decreaseImageVotesByImageId(long imageId);

    void increaseImageCommentsByImageId(long imageId);

    List<ImageTagCategory> getImageTagCategoryList(Integer pageNum, Integer pageSize);

    List<ImageTagCategory> getImageTagCategoryListByKeyword(String keyword, Integer pageNum, Integer pageSize);

    long getTotalByKeyword(String keyword);

    void removeImageById(long imageId);

    List<ImageTag> getImageTagListWithCondition(String keyword, Integer pageNum, Integer pageSize);

    long getTotalWithCondition(String keyword);

    List<ImageTag> getImageListWithCategoryId(Integer categoryId, Integer pageNum, Integer pageSize);

    ImageTag GetImageDetailById(long imageId);

    List<ImageTag> getRecommendImageList(Integer categoryId);


    void increaseImageViewsIncrement(long imageId);

    void increaseImageVotesIncrement (long imageId);

    void updateImageTagsAndCategory(Long categoryId, List<Integer> tagIds, Long imageId);
}
